
/**
 * @desc 将String类型的Boolean值转换成原始的Boolean值
 * 
 * @param {String} str  string类型的Boolean值
 * @returns {Boolean} value true/false
 * 
 * @demo
 *  @input "false"
 *  @program strConvertToBoolean(input)
 *  @ouput false
 */
 function strConvertToBoolean (str) {
    // return str === 'true' ? true : false
    return (/^true$/i).test(str)
}



/**
 * @desc 过滤对象中的值为null/undefined/''的字段
 * 
 * @param {Object} obj  对象
 * @returns {Object} value 过滤完对象中的值为null/undefined/''的字段的对象
 * 
 * @demo
 *  @input const obj = { name: 'test', age: undefined, sex: null, school: ''}
 *  @program filterObject(obj)
 *  @ouput {name: 'test'}
 */
function filterObject(obj) {
    for (let key in obj) {
        if (!obj[key]) delete obj[key]
    }
    return obj
}



/**
 * @desc 保留N位小数
 * 
 * @param {number} nums  原数据
 * @param {number} bit  保留的小数点位数, 默认2位
 * @returns {Object} value 保留N位小数的小数
 * 
 * @demo
 *  @input const nums = 18.896
 *  @program NumbertoFixed(nums)
 *  @ouput 18.9
 */
function NumbertoFixed(num, bit = 2) {
    const tmp = num.toFixed(bit)
    // parseFloat()去除结尾的多余的0:  eg: 18.90 -> 18.9
    return parseFloat(tmp)
}



export {
    strConvertToBoolean,
    filterObject,
    NumbertoFixed
}



